main() {
  // 运算符
  // 1. 算术运算符 (注意：新增了 ~/ 取整运算符  )
  print(1 + 2); // 加
  print(1 - 2); // 减
  print(1 * 2); // 乘
  print(1 / 2); // 除
  print(10 % 3); // 取余
  print(10 ~/ 4); // 取整 ~/

  // 2. 赋值运算符
  num a = 10;
  a += 2; // 加
  print(a); // 12
  a -= 2; // 减
  print(a); // 10
  a *= 2; // 乘
  print(a); // 20
  a /= 2; // 除
  print(a); // 10
  a %= 3; // 取余
  print(a); // 1

  print(0.1 + 0.2); // 0.30000000000000004
  // 如何解决double计算精度问题？
  //    项目需要使用三方库进行计算，如：decimal

  // 价格展示，保留两位小数
  num price = 19.9911111;
  print(price.toStringAsFixed(2)); // 保留两位小数，只用于最终展示，不能用于中间计算过程

  // 自增、自减运算符
  int age = 18;
  age++;
  print(age); // 19
  age--;
  print(age); // 18

  // 3. 关系运算符 (注意：没有 === 和 !== 运算符)
  print(1 == 1); // true
  print(1 != 1); // false
  print(1 > 2); // false
  print(1 < 2); // true
  print(1 >= 2); // false
  print(1 <= 2); // true

  // 4. 逻辑运算符 (注意：不支持短路运算)
  print(true && true); // true
  print(true && false); // false
  print(false || true); // true
  print(!true); // false

  // 5. 三元运算符
  print(1 > 2 ? '大于' : '小于'); // 小于
}
